package com.ourhours.message.controller;

import com.ourhours.link.dto.UserInfoDto;
import com.ourhours.link.enums.UserTypeEnum;
import com.ourhours.link.utils.TokenUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;

/**
 * Description:BaseController.
 *
 * @author xiangyang.liu
 * @version V1.0
 * @since 2017/12/25
 */
public class BaseController {

//    @Value("${fastdfs.url}")
//    private String imgHost;
//
//    @ModelAttribute("imgHost")
//    public String imgHost() {
//        return imgHost;
//    }
//
//    @InitBinder
//    public void initWebBinder(WebDataBinder binder) {
//        StringTrimmerEditor stringTrimmer = new StringTrimmerEditor(true);
//        binder.registerCustomEditor(String.class, stringTrimmer);
//    }

    /**
     * 根据管理后台登录用户所属商家ID
     *
     * @return null表示没有登录
     */
    protected Long getVendorId() {
        UserInfoDto userInfoDto = getLoginUser();
        if (userInfoDto != null) {
            return userInfoDto.getVendorId();
        }
        return null;
    }

    /**
     * 根据管理后台登录信息
     *
     * @return
     */
    protected UserInfoDto getLoginUser() {
        UserInfoDto userInfoDto = TokenUtil.getUserInfo();
        if (userInfoDto == null) {
            userInfoDto = getVendorUser();
//            userInfoDto = getSysUser();
        }
        return userInfoDto;
    }
    private UserInfoDto getVendorUser(){
        UserInfoDto userInfoDto = new UserInfoDto();
        userInfoDto.setUserId(10000);
        userInfoDto.setVendorId(10001L);
        userInfoDto.setShopSn(0L);
        userInfoDto.setUserName("system");
        userInfoDto.setUserType(UserTypeEnum.VENDER_USER);
        userInfoDto.setVendorName("北京生活");
        return userInfoDto;
    }
    private UserInfoDto getSysUser(){
        UserInfoDto userInfoDto = new UserInfoDto();
        userInfoDto.setUserId(1);
        userInfoDto.setVendorId(0L);
        userInfoDto.setShopSn(0L);
        userInfoDto.setUserName("admin");
        userInfoDto.setRealName("系统超级管理员");
        userInfoDto.setUserType(UserTypeEnum.SYS_USER);
        userInfoDto.setVendorName("北京生活");
        return userInfoDto;
    }
}
